#!/usr/bin/env node

const inquirer = require('inquirer')
const path = require('path')
const fs = require('fs')
const ejs = require('ejs')


const fn = (tmplDir,destDIr, anwsers ) => {
    fs.readdir(tmplDir, (err, files) => {
        if (err) {
            return err
        }
        files.forEach(file => {
            // 通过模板引擎渲染文件
            var stat = fs.lstatSync(path.join(tmplDir, file));
            var is_direc = stat.isDirectory()
            if (is_direc) {
                const fileDir = path.join(tmplDir, file)
                console.log(destDIr, file,  path.join(destDIr, file))
                try {
                    fs.mkdirSync(path.join(destDIr, file));
                } catch (error) { }
                fn(fileDir, path.join(destDIr, file) , anwsers)
            } else {
                ejs.renderFile(path.join(tmplDir, file), anwsers, (error, result) => {
                    if (error) {
                        return error
                    }
                    // 文件写入
                    fs.writeFileSync(path.join(destDIr, file), result)
                })
            }
        })
    })
}

inquirer.prompt([
    {
        type: 'input',
        name: 'name',
        message: 'Project name',
        default: 'app'
    },

    {
        type: "checkbox",
        name: 'checkbox',
        message: 'che',
        choices: [{ name: 'all', checked: true }],
        default: 'all'
    }
])
    .then(anwsers => {
        // 模板目录
        const tmplDir = path.join(__dirname, '../templates')
        // 目标目录
        const destDIr = process.cwd()

        // 将模板下的文件全部转换到目标目录
        fs.readdir(tmplDir, (err, files) => {
            if (err) {
                return err
            }
            fn(tmplDir,destDIr,anwsers)
                  // files.forEach(file => {
            //     // 通过模板引擎渲染文件
            //     var stat = fs.lstatSync(path.join(tmplDir, file));
            //     var is_direc = stat.isDirectory()
            //     if (is_direc) {
            //         const fileDir = path.join(__dirname, '../templates', file)
                    
            //     } else {
            //         ejs.renderFile(path.join(tmplDir, file), anwsers, (error, result) => {
            //             if (error) {
            //                 return error
            //             }
            //             // 文件写入
            //             fs.writeFileSync(path.join(destDIr, file), result)
            //         })
            //     }
            // })

        })
    })

